Computer systems, and data processing systems generally that utilize time dependent data such as audio data or video data to produce a time dependent presentation require a synchronization mechanism to synchronize the retrieval of the time dependent data. Without synchronization, the time dependent data cannot be retrieved at the appropriate time and the data would not be available for use at the appropriate time. As a result, the time dependent presentation would have a discontinuity due to the unavailability of the data. In the case of video data, there is typically a sequence of images ("frames") which, when the images are displayed in rapid sequence (e.g. each frame being displayed for 1/30th of a second immediately after displaying a prior frame), will create the impression of a motion picture. The human eye is particularly sensitive to discontinuities in a motion picture. With video images, the discontinuity would manifest itself as a stutter in the video image or a freeze-up (e.g. a single frame being displayed considerably longer than 1/30th of a second) in the video image. With audio presentations, the discontinuity would manifest itself as a period of silence or a pause.
One prior technique synchronized the retrieval of time dependent data by utilizing an instruction or a set of instructions to retrieve the time dependent data just prior to the time dependent presentation by the computer system or data processing system. In retrieving the time dependent data, an instruction or a set of instructions is used to search for the data file in the root directory of the storage media containing the data. The storage media is typically a floppy disk, hard disk or CD-ROM disk or some other mass storage media. After the data file is located, the starting cluster number for the file is retrieved from the root directory and stored in memory of the computer system. The file allocation table of the storage media is then accessed and the starting cluster number is used to determine the second cluster number. The second cluster number is determined by retrieving the value stored in the location corresponding to the starting cluster number. The value is stored in memory as the second cluster number. If the value indicates the end of the data file, retrieval of cluster information ceases. However, if the value indicates a second cluster number, the second cluster number is used to determine the third cluster number by retrieving the value stored in the location corresponding to the second cluster number. The retrieval of cluster numbers continues until a value indicating the end of the data file is retrieved. After all the cluster numbers for the data file have been retrieved from the root directory and file allocation table, the data is retrieved from the storage media using the cluster numbers. The data located in the starting cluster is retrieved followed by the data from the second cluster and so forth until the data from the last cluster is retrieved. The data from the clusters is stored in memory and utilized by the computer system to produce a time dependent presentation.
However, because the cluster numbers for the time dependent data are retrieved just prior to the time dependent presentation by the computer system, any interruption of sufficient duration which interferes with the ability of the computer system to retrieve the cluster numbers affects the retrieval of time dependent data from the storage media. FIG. 1a shows a typical implementation in the prior art wherein the time dependent data is retrieved just prior to the time dependent presentation and wherein there is no scheduling of the retrieved process. An example of this prior art can be found in the software product known as QuickTime (version 1.0) from Apple Computer, Inc. of Cupertino, Calif. This prior art software is susceptible to the interruption noted above. The interruption can be caused by the servicing of a hardware interrupt or software interrupt. The delayed retrieval of presentation data caused by the interruption in turn affects the time dependent presentation causing image stutter, image freeze-ups, and/or periods of silence or pauses.
Thus, what is needed is a system that retrieves time dependent data in a more continuous manner.